home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gigantic Games 2
/
Gigantic Games 2.iso
/
pc
/
_d_
/
dominos
/
dominos.bas
< prev
next >
Wrap
BASIC Source File
|
1994-12-23
|
33KB
|
816 lines
'23nd listing 6/1/91
WINDOW 3,,,16:game=0
palette 0,0,0,1
palette 1,1,1,1
palette 2,0,0,0
palette 3,1,0.5,0
line (25,20)-(275,70),2,bf:line (325,20)-(575,70),2,bf
line (25,110)-(275,160),2,bf:line (325,110)-(575,160),2,bf
circle (87,45),4,1:paint (87,45),1,1
circle (212,45),4,1:paint (212,45),1,1
circle (340,25),4,1:paint (340,25),1,1
circle (435,65),4,1:paint (435,65),1,1
circle (465,25),4,1:paint (465,25),1,1
circle (560,65),4,1:paint (560,65),1,1
circle (40,115),4,1:paint (40,115),1,1
circle (87,135),4,1:paint (87,135),1,1
circle (135,155),4,1:paint (135,155),1,1
circle (165,115),4,1:paint (165,115),1,1
circle (212,135),4,1:paint (212,135),1,1
circle (260,155),4,1:paint (260,155),1,1
circle (340,115),4,1:paint (340,115),1,1
circle (435,115),4,1:paint (435,115),1,1
circle (465,115),4,1:paint (465,115),1,1
circle (560,115),4,1:paint (560,115),1,1
circle (340,155),4,1:paint (340,155),1,1
circle (435,155),4,1:paint (435,155),1,1
circle (465,155),4,1:paint (465,155),1,1
circle (560,155),4,1:paint (560,155),1,1
color 3:locate 11,30:print "...D O M I N O S..."
color 1:locate 23,30:input "Press enter to continue";jji$
CLS:color 3:locate 2,28
print "...D O M I N O S..."
color 1
LOCATE 12,19:INPUT "What is your Name (5 letter limit)";R$:CLS
if R$="" then R$="Playr"
IF LEN(R$)>5 THEN R$=LEFT$(R$,5)
color 3:locate 2,28:print "...D O M I N O S..."
color 1:locate 9,19:print "There are three speeds of play:":print
print " 1. Enter 0 for a very fast game."
print " 2. Enter 1 for a normal game.
print " 3. Enter 2 for a slow game."
locate 15,19:input "Enter 0 or 1 or 2";ite
if ite<>0 or ite<>1 or ite<>2 then ite=1
cls:color 3:locate 2,30:print "...D O M I N O S..."
color 1:locate 11,25:print R$;", do you like to Cheat...?"
locate 13,30:input "Enter Yes or No";no$
if left$(NO$,1)="Y" or left$(no$,1)="y" then ch=1 else ch=2
MENU 5,0,1,"Information"
MENU 5,1,1,"Game Information"
IF CH=1 THEN
MENU 5,2,1,"Cheating on Computer"
menu 5,3,1,"Cheating on Boneyard"
end if
on menu gosub cheating
menu on
900 CLS:RANDOMIZE TIMER
TIMER ON
DIM R(30,2) 'R=INITIAL GAME DOT FORMATION ARRAY
DIM m(30) 'M=INITIAL GAME RND SELECTION ARRAY
DIM s(30,2) 'DOT ARRAY FOR DRAWING ON SCREEN
DIM t(30) 'T=RND SELECTION ARRAY FOR DRAWING DOTS ON SCREEN
DIM c(25,2) 'C=COMPUTER DOMINO IN PLAY ARRAY
DIM p(25,2) 'P=PLAYER DOMINO IN PLAY ARRAY
dom=1 'FIRST PLAY DOMINO
bone=14 '14 ORIGINAL DOMINOS IN BONEYARD
comp=7 '7 ORIGINAL COMPUTER DOMINOS
pomp=7 '7 ORIGINAL PLAYER DOMINOS
p4=INT(2000*RND)+1:FOR se=1 TO p4:NEXT
GOSUB SHUFFLE
FOR vt=1 TO 7
cscore=cscore+p(vt,1)+p(vt,2)
pscore=pscore+c(vt,1)+c(vt,2)
NEXT vt
LOCATE 18,2:PRINT R$;"'s";" Dominos";
LOCATE 22,2:PRINT "Computer's Dominos";
LINE (3,132)-(630,195),3,B:LINE (2,132)-(2,195),3
LINE (3,163)-(631,163),3:LINE (3,179)-(631,179),3:LINE (631,132)-(631,195),3
LINE (225,179)-(225,195),3:LINE (226,179)-(226,195),3
LINE (458,179)-(458,195),3:LINE (459,179)-(459,195),3
FOR gt=1 TO 14:R(m(gt),1)=9:R(m(gt),2)=9:NEXT gt
GOSUB STARTGAME
IF play=1 THEN GOSUB PLAYERDOMINO
IF play=2 THEN GOSUB COMPDRAW:GOSUB PLAYERDOMINO:x=40:y=21
locate 24,2:print "Computer Score=";cscore;
locate 24,31:print R$;"'s Score=";pscore;
locate 24,60:print "Boneyard No.=";bone;
GOSUB gameplay
END
STARTGAME: 'DETERMINES WHO STARTS GAME
COLOR 3
FOR V1=6 TO 0 STEP -1 'SEES WHO HAS HIGHEST DOUBLET
FOR U=1 TO 7
IF (p(U,1)=p(U,2)) AND p(U,1)=V1 THEN
play=1:dot=p(U,1):LOCATE 11,30:PRINT R$;" Starts Game":PRINT
PRINT TAB (9)"Click Left Mouse on the Player Domino with";p(U,1);"-";p(U,1);"Dot Arrangement"
SOUND 880,2:x=160:y=169:FOR a=1 TO 7:LINE (x,y)-(x+16,y+6),2,BF
x=x+24:NEXT a:RETURN
END IF
IF (c(U,1)=c(U,2)) AND c(U,1)=V1 THEN
dot=c(U,1):t1=TIMER:play=2:LOCATE 11,27:PRINT "Computer Starts Game"
SOUND 880,2:GOTO 190
END IF
NEXT U
NEXT V1
190 FOR t=1 TO 7:s(t,1)=c(t,1):s(t,2)=c(t,2):NEXT t
FOR PO=1 TO 4000:t2=TIMER:x=15:y=21:a=U
IF ply=0 AND INT(t2-t1)=2 THEN
LINE (60,50)-(600,130),0,BF:LINE (x,y+10)-(x+25,y-10),2,BF
GOSUB VERTDOTS:dom=dom+1:GOSUB CDRAW:RETURN
END IF
NEXT PO
RETURN
gameplay: 'SUB FOR PLAYING GAME
IF ply=0 THEN GOTO 200
IF pomp=0 THEN R=1:GOSUB winner
FOR Z1=1 TO pomp
IF p(Z1,1)=dot OR p(Z1,2)=dot AND ply<>0 THEN R=1:GOSUB whoplay:GOTO 200
NEXT Z1
z6=pomp:z7=bone:r=3:gosub whoplay
FOR R9=1 TO 28
IF R(m(R9),1)<=6 OR R(m(R9),2)<=6 THEN
pomp=pomp+1:bone=bone-1 'ADDS DOMINOS TO PLAYERS PILE
p(pomp,1)=R(m(R9),1):p(pomp,2)=R(m(R9),2)
R(m(R9),1)=9:R(m(R9),2)=9
IF p(pomp,1)=dot OR p(pomp,2)=dot THEN
horiz=x:vert=y:add=1:r=5:gosub whoplay:gosub playerdomino 'add=1 is delay timer for display
x=horiz:y=vert:r=1:add=0:gosub whoplay:goto 200
END IF
end if
NEXT R9
locate 24,73:print bone;
horiz=x:vert=y:gosub playerdomino
x=horiz:y=vert:R=1:GOSUB whoplay
IF bone=0 AND (p(pomp,1)<>dot OR p(pomp,2)<>dot) THEN
R=4:GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOTO gameplay
END IF
200 WHILE MOUSE(0)=0:WEND
xx=MOUSE(3):YY=MOUSE(4)
IF ply=0 THEN
LEFT=134+(51*(U-1))+4*(U-1):RIGHT=134+(51*(U-1))+4*(U-1)+51
TOP=135:BOTTOM=145 'TOP DOMINO ROW
END IF
IF ply=0 AND xx>LEFT AND xx<RIGHT AND YY>TOP AND YY<BOTTOM THEN
LINE (60,50)-(629,130),0,BF:x=15:y=21:a=U
LINE (x,y+10)-(x+25,y-10),2,BF:GOSUB VERTDOTS:p(U,1)=7:p(U,2)=7
dom=dom+1
GOSUB PLAYERDOMINO:pomp=pomp-1:R=2:x=40:y=21:ply=90:GOSUB whoplay
GOSUB computerdomino
END IF
IF ply=0 THEN GOTO gameplay
FOR a=1 TO pomp 'LOOP IS FOR PLAYING AFTER FIRST MOVE
IF a<=9 THEN LEFT=134+(51*(a-1))+4*(a-1):RIGHT=134+(51*(a-1))+4*(a-1)+51
IF a>=10 THEN LEFT=134+(51*(a-1-9))+4*(a-1-8):RIGHT=134+(51*(a-1-9))+4*(a-1-9)+51
IF (xx>LEFT AND xx<RIGHT) AND (YY>135 AND YY<145) AND xx<>zz AND a<=9 THEN ben=1 ELSE ben=0
IF (xx>LEFT AND xx<RIGHT) AND (YY>149 AND YY<159) AND xx<>zz AND a>=10 THEN bent=2 ELSE bent=0
'DOMINOS 1-10 ARE TOP HORIZONTAL ROW ON SCREEN
'DOMINOS 24-28 ARE LOWEST HORIZONTAL ROW ON SCREEN
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)<>p(a,2) AND (dom<=10 OR dom>=24) THEN
LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=p(a,1):s(a,2)=p(a,2)
GOSUB horizDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2):p(a,1)=7
p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz+51:y=vert:R=2
GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,2)=dot AND p(a,1)<>p(a,2) AND (dom<=10 OR dom>=24) THEN
LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=p(a,2):s(a,2)=p(a,1)
GOSUB horizDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,1):p(a,1)=7:p(a,2)=7
GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz+51:y=vert:R=2:GOSUB whoplay
GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)=p(a,2) AND (dom<=10 OR dom>=24) THEN
LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,1):s(a,2)=p(a,2)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2):p(a,1)=7:p(a,2)=7
GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz+25:y=vert:R=2:GOSUB whoplay
GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
'DOMINOS 11-13 ARE VERTICAL RIGHT ROW ON SCREEN
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)<>p(a,2) AND dom=11 THEN
y=26:LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,1):s(a,2)=p(a,2)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2):p(a,1)=7
p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert+20:R=2
GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,2)=dot AND p(a,1)<>p(a,2) AND dom=11 THEN
y=26:LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,2):s(a,2)=p(a,1)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,1):p(a,1)=7
p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert+20:R=2
GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)=p(a,2) AND dom=11 THEN
y=21:LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,1):s(a,2)=p(a,2)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2):p(a,1)=7
p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert+20:R=2
GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)<>p(a,2) AND (dom=12 OR dom=22) THEN
LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,1):s(a,2)=p(a,2)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2):p(a,1)=7
p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert+20:R=2
GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,2)=dot AND p(a,1)<>p(a,2) AND (dom=12 OR dom=22) THEN
LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,2):s(a,2)=p(a,1)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,1):p(a,1)=7
p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert+20:R=2
GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)=p(a,2) AND (dom=12 OR dom=22) THEN
x=x-13:y=y-5:LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=p(a,1)
s(a,2)=p(a,2):GOSUB horizDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2)
p(a,1)=7:p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz+13:y=vert+15
R=2:GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)<>p(a,2) AND dom=13 THEN
LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,1):s(a,2)=p(a,2)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2):p(a,1)=7:p(a,2)=7
GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert+5:R=2:GOSUB whoplay
GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,2)=dot AND p(a,1)<>p(a,2) AND dom=13 THEN
LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,2):s(a,2)=p(a,1)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,1):p(a,1)=7:p(a,2)=7
GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert+5:R=2:GOSUB whoplay
GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)=p(a,2) AND dom=13 THEN
x=x-13:y=y-5:LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=p(a,1)
s(a,2)=p(a,2):GOSUB horizDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2)
p(a,1)=7:p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert
R=2:GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
'DOMINOS 14-20 ARE MIDDLE HORIZONTAL ROW ON SCREEN
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)<>p(a,2) AND (dom>=14 AND dom<=20) THEN
x=x-51:horiz=x:LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=p(a,2):s(a,2)=p(a,1)
GOSUB horizDOTS:dom=dom+1:vert=y:dot=p(a,2):p(a,1)=7
p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert:R=2
GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,2)=dot AND p(a,1)<>p(a,2) AND (dom>=14 AND dom<=20) THEN
x=x-51:horiz=x:LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=p(a,1):s(a,2)=p(a,2)
GOSUB horizDOTS:dom=dom+1:vert=y:dot=p(a,1):p(a,1)=7:p(a,2)=7
GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert:R=2:GOSUB whoplay
GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)=p(a,2) AND (dom>=14 AND dom<=20) THEN
x=x-25:horiz=x:LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,1):s(a,2)=p(a,2)
GOSUB VERTDOTS:dom=dom+1:vert=y:dot=p(a,2):p(a,1)=7:p(a,2)=7
GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert:R=2:GOSUB whoplay
GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
'DOMINOS 21-23 ARE LEFT VERTICAL ROW ON SCREEN
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)<>p(a,2) AND dom=21 THEN
x=x-25:y=y+5:LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,1):s(a,2)=p(a,2)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2):p(a,1)=7
p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert+20:R=2
GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,2)=dot AND p(a,1)<>p(a,2) AND dom=21 THEN
x=x-25:y=y+5:LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,2):s(a,2)=p(a,1)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,1):p(a,1)=7
p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert+20:R=2
GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)=p(a,2) AND dom=21 THEN
x=x-25:LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,1):s(a,2)=p(a,2)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2):p(a,1)=7
p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz:y=vert+20:R=2
GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)<>p(a,2) AND dom=23 THEN
LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,1):s(a,2)=p(a,2)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2):p(a,1)=7:p(a,2)=7
GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz+25:y=vert+5:R=2:GOSUB whoplay
GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,2)=dot AND p(a,1)<>p(a,2) AND dom=23 THEN
LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=p(a,2):s(a,2)=p(a,1)
GOSUB VERTDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,1):p(a,1)=7:p(a,2)=7
GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz+25:y=vert+5:R=2:GOSUB whoplay
GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
IF (ben=1 OR bent=2) AND p(a,1)=dot AND p(a,1)=p(a,2) AND dom=23 THEN
x=x-13:y=y-5:LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=p(a,1)
s(a,2)=p(a,2):GOSUB horizDOTS:dom=dom+1:horiz=x:vert=y:dot=p(a,2)
p(a,1)=7:p(a,2)=7:GOSUB PLAYERDOMINO:pomp=pomp-1:x=horiz+51:y=vert
R=2:GOSUB whoplay:GOSUB tim:GOSUB computerdomino:GOSUB tim:GOTO gameplay
END IF
NEXT a
GOSUB tim
GOTO gameplay
RETURN
PLAYERDOMINO: 'DRAWING OF PLAYER DOMINOS ON LOWER SCREEN
zz=xx:cscore=0
FOR Z=1 TO pomp-1
IF p(Z,1)=7 THEN
p(Z,1)=p(Z+1,1)
p(Z,2)=p(Z+1,2)
p(Z+1,1)=7
p(Z+1,2)=7
END IF
NEXT Z
x=134:FOR t=1 TO pomp:s(t,1)=p(t,1):s(t,2)=p(t,2):NEXT t
LINE (133,133)-(629,160),0,BF
FOR a=1 TO pomp
IF p(a,1)=7 OR p(a,2)=7 THEN GOTO 340
IF a<=9 THEN y=140 'TOP ROW OF PLAYER DOMINOS
IF a=10 THEN x=134:y=154 'BOTTOM ROW OF PLAYER DOMINOS
LINE (x,y-5)-(x+51,y+5),2,BF
GOSUB horizDOTS
x=x+55:cscore=cscore+p(a,1)+p(a,2)
COLOR 1:LOCATE 24,17:PRINT cscore;
t11=timer
if add=1 and a>=z6 then
while int(t12-t11)<1
t12=timer
wend
z7=z7-1:sound 880,2:locate 24,73:print z7; 'z7=bone
end if
340 NEXT a
locate 24,73:print bone;
IF pomp=0 THEN R=1:GOSUB winner
RETURN
computerdomino: 'DRAWS FULL SIZE COMPUTER DOMINOS ON SCREEN
FOR t=1 TO comp:s(t,1)=c(t,1):s(t,2)=c(t,2):NEXT t
FOR a=1 TO comp
'DOMINOS 1-10 ARE TOP HORIZONTAL ROW ON SCREEN
'DOMINOS 11-13 ARE RIGHT VERTICAL ROW ON SCREEN
'DOMINOS 14-20 ARE MIDDLE HORIZONTAL ROW ON SCREEN
'DOMINOS 21-23 ARE LEFT VERTICAL ROW ON SCREEN
'DOMINOS 24-28 ARE LOWEST HORIZONTAL ROW ON SCREEN
IF c(a,1)=dot AND c(a,1)=c(a,2) AND (dom<=10 OR dom>=24) THEN gosub check
IF YU=1 THEN YU=0:GOTO 40
if c(a,1)=dot and c(a,1)=c(a,2) and (dom<=10 or dom>=24) then
LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=c(a,1):s(a,2)=c(a,2)
GOSUB VERTDOTS:dom=dom+1:x=x+25:dot=c(a,2)
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
if c(a,1)=dot and c(a,1)<>c(a,2) and (dom<=10 or dom>=24) then gosub check
if yu=1 then YU=0:GOTO 40
If c(a,1)=dot AND c(a,1)<>c(a,2) AND (dom<=10 OR dom>=24) THEN
LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=c(a,1):s(a,2)=c(a,2)
GOSUB horizDOTS:dom=dom+1:x=x+51:dot=c(a,2)
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
if c(a,2)=dot and c(a,1)<>c(a,2) and (dom<=10 or dom>=24) then gosub check
IF YU=1 THEN YU=0:GOTO 40
IF c(a,2)=dot AND c(a,1)<>c(a,2) AND (dom<=10 OR dom>=24) THEN
LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=c(a,2):s(a,2)=c(a,1)
GOSUB horizDOTS:dom=dom+1:x=x+51:dot=c(a,1)
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF C(A,1)=DOT AND C(A,1)<>C(A,2) AND DOM=11 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF c(a,1)=dot AND c(a,1)<>c(a,2) AND dom=11 THEN
y=26:LINE (x,y-10)-(x+25,y+10),2,BF:s(a,1)=c(a,1):s(a,2)=c(a,2)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,2):y=y+20
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF C(A,2)=DOT AND C(A,1)<>C(A,2) AND DOM=11 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF c(a,2)=dot AND c(a,1)<>c(a,2) AND dom=11 THEN
y=26:LINE (x,y-10)-(x+25,y+10),2,BF:s(a,1)=c(a,2):s(a,2)=c(a,1)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,1):y=y+20
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,1)=dot AND c(a,1)=c(a,2) AND dom=11 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,1)=DOT AND C(A,1)=C(A,2) AND DOM=11 THEN
y=21:LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=c(a,1):s(a,2)=c(a,2)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,2):y=y+20
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,1)=dot AND c(a,1)<>c(a,2) AND (dom=12 OR dom=22) THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,1)=DOT AND C(A,1)<>C(A,2) AND (DOM=12 OR DOM=22) THEN
LINE (x,y-10)-(x+25,y+10),2,BF:s(a,1)=c(a,1):s(a,2)=c(a,2)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,2):y=y+20
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,2)=dot AND c(a,1)<>c(a,2) AND (dom=12 OR dom=22) THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,2)=DOT AND C(A,1)<>C(A,2) AND (DOM=12 OR DOM=22) THEN
LINE (x,y-10)-(x+25,y+10),2,BF:s(a,1)=c(a,2):s(a,2)=c(a,1)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,1):y=y+20
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,1)=dot AND c(a,1)=c(a,2) AND (dom=12 OR dom=22) THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,1)=DOT AND C(A,1)=C(A,2) AND (DOM=12 OR DOM=22) THEN
x=x-13:y=y-5:LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=c(a,1)
s(a,2)=c(a,2):GOSUB horizDOTS:dom=dom+1:dot=c(a,2):x=x+13:y=y+15
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,1)=dot AND c(a,1)<>c(a,2) AND dom=13 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,1)=DOT AND C(A,1)<>C(A,2) AND DOM=13 THEN
LINE (x,y-10)-(x+25,y+10),2,BF:s(a,1)=c(a,1):s(a,2)=c(a,2)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,2):y=y+5
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,2)=dot AND c(a,1)<>c(a,2) AND dom=13 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,2)=DOT AND C(A,1)<>C(A,2) AND DOM=13 THEN
LINE (x,y-10)-(x+25,y+10),2,BF:s(a,1)=c(a,2):s(a,2)=c(a,1)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,1):y=y+5
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,1)=dot AND c(a,1)=c(a,2) AND dom=13 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,1)=DOT AND C(A,1)=C(A,2) AND DOM=13 THEN
x=x-13:y=y-5:LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=c(a,1)
s(a,2)=c(a,2):GOSUB horizDOTS:dom=dom+1:dot=c(a,2)
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,1)=dot AND c(a,1)<>c(a,2) AND (dom>=14 AND dom<=20) THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,1)=DOT AND C(A,1)<>C(A,2) AND (DOM>=14 AND DOM<=20) THEN
x=x-51:LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=c(a,2)
s(a,2)=c(a,1):GOSUB horizDOTS:dom=dom+1:dot=c(a,2)
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,2)=dot AND c(a,1)<>c(a,2) AND (dom>=14 AND dom<=20) THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,2)=DOT AND C(A,1)<>C(A,2) AND (DOM>=14 AND DOM<=20) THEN
x=x-51:LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=c(a,1)
s(a,2)=c(a,2):GOSUB horizDOTS:dom=dom+1:dot=c(a,1)
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,1)=dot AND c(a,1)=c(a,2) AND (dom>=14 AND dom<=20) THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,1)=DOT AND C(A,1)+C(A,2) AND (DOM>=14 AND DOM<=20) THEN
x=x-25:LINE (x,y-10)-(x+25,y+10),2,BF:s(a,1)=c(a,1)
s(a,2)=c(a,2):GOSUB VERTDOTS:dom=dom+1:dot=c(a,1)
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,1)=dot AND c(a,1)<>c(a,2) AND dom=21 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,1)=DOT AND C(A,1)<>C(A,2) AND DOM=21 THEN
x=x-25:y=y+5:LINE (x,y-10)-(x+25,y+10),2,BF:s(a,1)=c(a,1):s(a,2)=c(a,2)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,2):y=y+20
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,2)=dot AND c(a,1)<>c(a,2) AND dom=21 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,2)=DOT AND C(A,1)<>C(A,2) AND DOM=21 THEN
x=x-25:y=y+5:LINE (x,y-10)-(x+25,y+10),2,BF:s(a,1)=c(a,2):s(a,2)=c(a,1)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,1):y=y+20
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,1)=dot AND c(a,1)=c(a,2) AND dom=21 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,1)=DOT AND C(A,1)=C(A,2) AND DOM=21 THEN
x=x-25:LINE (x,y+10)-(x+25,y-10),2,BF:s(a,1)=c(a,1):s(a,2)=c(a,2)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,2):y=y+20
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,1)=dot AND c(a,1)<>c(a,2) AND dom=23 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,1)=DOT AND C(A,1)<>C(A,2) AND DOT=23 THEN
LINE (x,y-10)-(x+25,y+10),2,BF:s(a,1)=c(a,1):s(a,2)=c(a,2)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,2):x=x+25:y=y+5
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,2)=dot AND c(a,1)<>c(a,2) AND dom=23 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,2)=DOT AND C(A,1)<>C(A,2) AND DOM=23 THEN
LINE (x,y-10)-(x+25,y+10),2,BF:s(a,1)=c(a,2):s(a,2)=c(a,1)
GOSUB VERTDOTS:dom=dom+1:dot=c(a,1):x=x+25:y=y+5
GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
IF c(a,1)=dot AND c(a,1)=c(a,2) AND dom=23 THEN GOSUB CHECK
IF YU=1 THEN YU=0:GOTO 40
IF C(A,1)=DOT AND C(A,1)=C(A,2) AND DOM=23 THEN
x=x-13:y=y-5:LINE (x,y-5)-(x+51,y+5),2,BF:s(a,1)=c(a,1)
s(a,2)=c(a,2):GOSUB horizDOTS:dom=dom+1:dot=c(a,2)
x=x+51:GOSUB CDRAW:GOSUB COMPDRAW:Y2=0:Y3=0:RETURN
END IF
40 NEXT a
IF Y2=2 THEN Y3=3:YU=0:GOTO COMPUTERDOMINO 'A MATCH WAS FOUND ON FIRST ROUND
FOR R9=1 TO 28
IF R(m(R9),1)<=6 OR R(m(R9),2)<=6 THEN
comp=comp+1 'ADDS DOMINOS TO COMPUTERS PILE
c(comp,1)=R(m(R9),1):c(comp,2)=R(m(R9),2)
R(m(R9),1)=9:R(m(R9),2)=9:bone=bone-1
LOCATE 24,73:PRINT bone;
GOSUB COMPDRAW:SOUND 880,2
GOTO computerdomino
END IF
NEXT R9
IF R=4 AND bone=0 THEN GOSUB winner
RETURN
CDRAW: 'RENUMBERS USED COMPUTER DOMINOS IN ITS ARRAY
c(a,1)=8:c(a,2)=8:SOUND 880,2
FOR LIK=1 TO comp-1
IF LIK=comp THEN RETURN
IF c(LIK,1)=8 OR c(LIK,2)=8 THEN
c(LIK,1)=c(LIK+1,1)
c(LIK,2)=c(LIK+1,2)
c(LIK+1,1)=8
c(LIK+1,2)=8
END IF
NEXT LIK
comp=comp-1
RETURN
COMPDRAW: 'DRAWS LITTLE COMPUTER DOMINOS ON LOWER SCREEN
pscore=0
IF ply=0 AND play=2 THEN comp=6
X9=160:Y9=169:ply=90
LINE (159,168)-(620,176),0,BF
FOR AT=1 TO comp
pscore=pscore+c(AT,1)+c(AT,2)
LINE (X9,Y9)-(X9+16,Y9+6),2,BF:X9=X9+24:NEXT AT
COLOR 1:LOCATE 24,40+LEN(R$):PRINT pscore;
IF comp=0 THEN R=2:GOSUB winner
RETURN
whoplay: 'SHOWS WHOSE TURN TO PLAY NEXT ON UPPER LEFT SCREEN
LINE (0,0)-(635,10),0,BF
LOCATE 1,2:COLOR 3
IF R=1 THEN PRINT R$;"'s";" turn to Play..."
IF R=2 THEN PRINT "Computer's turn to Play..."
if r=3 then print "Checking ";r$;"'s";" dominos"
IF R=4 THEN PRINT "The Boneyard is empty, ";R$;" is unable to Play, therefore Computer will Play":SOUND 880,2
if r=5 then
print R$;", you have to draw from the Boneyard since you don't have a";dot
end if
COLOR 1
RETURN
CHECK: 'COMPUTER CHECKING DOMINOS
if y3=3 then yu=0:return
FOR GT=1 TO POMP
IF C(A,1)=DOT AND (P(GT,1)=C(A,2) OR P(GT,2)=C(A,2)) THEN YU=1:Y2=2:RETURN
IF C(A,2)=DOT AND (P(GT,1)=C(A,1) OR P(GT,2)=C(A,1)) THEN YU=1:Y2=2:RETURN
NEXT GT
RETURN
CHEATING:
IF MENU(1)=1 THEN GOSUB Information
IF MENU(1)=2 and ch=1 THEN GOSUB OPPCHEATER 'ch=1 player cheats on oppnt
IF MENU(1)=3 and ch=1 THEN GOSUB BONECHEATER 'ch=1 player cheats on byard
RETURN
Information: 'SHOWS GAMES PLAYED
WINDOW 6," .....Game Information.....",(10,10)-(375,75),16
d=p+c:PRINT
PRINT "Games Played: ";c+p
IF d<1 THEN d=1
PRINT "Computer Wins: ";c
print R$;" Wins: ";p
PRINT r$;" wins";int((p/(d))*100);"percent of the time."
PRINT
INPUT "Enter any key to continue";gt$
WINDOW CLOSE 6
RETURN
OPPCHEATER: 'LOOKS AT COMPUTERS DOMINOS
WINDOW 4," .....Why are You Cheating.....",(10,10)-(350,180),16
PRINT "The Computer has the following dominos:":PRINT:hi=1
FOR gy=1 TO comp
PRINT TAB(15) c(gy,1);c(gy,2)
hi=hi+1:NEXT:PRINT
INPUT "Enter any key to continue";fr$
WINDOW CLOSE 4
RETURN
BONECHEATER: 'LOOKS AT DOMINOS IN BONEYARD
WINDOW 5," .....Why are You Cheating.....",(10,10)-(350,180),16
If bone=0 then
print "The Boneyard is empty.........."
print:print:print:print:print
goto 678
end if
PRINT "The Boneyard has the following Dominos:":PRINT
FOR gy=1 TO 28
IF R(m(gy),1)<=6 OR R(m(gy),2)<=6 THEN
PRINT TAB(15) R(m(gy),1);R(m(gy),2)
END IF
NEXT gy
678 INPUT "Enter any key to continue";fo$
WINDOW CLOSE 5
RETURN
SHUFFLE: 'DOMINO ARRAY FORMATION
FOR a=1 TO 28
READ R(a,1):READ R(a,2):NEXT a:RESTORE
FOR i=1 TO 28:m(i)=i:NEXT i
FOR i=1 TO 28:x=INT(28*RND)+1
TP=m(i):m(i)=m(x):m(x)=TP:NEXT i
FOR t1=1 TO 7:p(t1,1)=R(m(t1),1):p(t1,2)=R(m(t1),2)
NEXT t1
FOR t2=1 TO 7:c(t2,1)=R(m(t2+7),1):c(t2,2)=R(m(t2+7),2)
NEXT t2
DATA 0,0,0,1,0,2,0,3,0,4,0,5,0,6
DATA 1,1,1,2,1,3,1,4,1,5,1,6
DATA 2,2,2,3,2,4,2,5,2,6
DATA 3,3,3,4,3,5,3,6
DATA 4,4,4,5,4,6
DATA 5,5,5,6
DATA 6,6
RETURN
horizDOTS: 'DOMINO DOTS IN HORIZONTAL LAYOUT
IF s(a,1)=1 THEN PSET (x+12,y),1:PSET (x+13,y),1
IF s(a,1)=2 THEN
PSET (x+4,y-3),1:PSET (x+5,y-3),1
PSET (x+20,y+3),1:PSET (x+21,y+3),1
END IF
IF s(a,1)=3 THEN
PSET (x+4,y-3),1:PSET (x+5,y-3),1:PSET (x+12,y),1
PSET (x+13,y),1:PSET (x+20,y+3),1:PSET (x+21,y+3),1
END IF
IF s(a,1)=4 THEN
PSET (x+4,y-3),1:PSET (x+5,y-3),1:PSET (x+20,y-3),1
PSET (x+21,y-3),1:PSET (x+4,y+3),1
PSET (x+5,y+3),1:PSET (x+20,y+3),1:PSET (x+21,y+3),1
END IF
IF s(a,1)=5 THEN
PSET (x+4,y-3),1:PSET (x+5,y-3),1:PSET (x+20,y-3),1
PSET (x+21,y-3),1:PSET (x+12,y),1:PSET (x+13,y),1
PSET (x+4,y+3),1:PSET (x+5,y+3),1:PSET (x+20,y+3),1
PSET (x+21,y+3),1
END IF
IF s(a,1)=6 THEN
PSET (x+4,y-3),1:PSET (x+5,y-3),1:PSET (x+12,y-3),1
PSET (x+13,y-3),1:PSET (x+20,y-3),1:PSET (x+21,y-3),1
PSET (x+4,y+3),1:PSET (x+5,y+3),1:PSET (x+12,y+3),1
PSET (x+13,y+3),1:PSET (x+20,y+3),1:PSET (x+21,y+3),1
END IF
IF s(a,2)=1 THEN PSET (x+12+25,y),1:PSET (x+13+25,y),1
IF s(a,2)=2 THEN
PSET (x+4+25,y-3),1:PSET (x+5+25,y-3),1
PSET (x+20+25,y+3),1:PSET (x+21+25,y+3),1
END IF
IF s(a,2)=3 THEN
PSET (x+4+25,y-3),1:PSET (x+5+25,y-3),1
PSET (x+12+25,y),1:PSET (x+13+25,y),1
PSET (x+20+25,y+3),1:PSET (x+21+25,y+3),1
END IF
IF s(a,2)=4 THEN
PSET (x+4+25,y-3),1:PSET (x+5+25,y-3),1
PSET (x+20+25,y-3),1:PSET (x+21+25,y-3),1
PSET (x+4+25,y+3),1:PSET (x+5+25,y+3),1
PSET (x+20+25,y+3),1:PSET (x+21+25,y+3),1
END IF
IF s(a,2)=5 THEN
PSET (x+4+25,y-3),1:PSET (x+5+25,y-3),1:PSET (x+20+25,y-3),1
PSET (x+21+25,y-3),1:PSET (x+12+25,y),1:PSET (x+13+25,y),1
PSET (x+4+25,y+3),1:PSET (x+5+25,y+3),1
PSET (x+20+25,y+3),1:PSET (x+21+25,y+3),1
END IF
IF s(a,2)=6 THEN
PSET (x+4+25,y-3),1:PSET (x+5+25,y-3),1:PSET (x+12+25,y-3),1
PSET (x+13+25,y-3),1:PSET (x+20+25,y-3),1:PSET (x+21+25,y-3),1
PSET (x+4+25,y+3),1:PSET (x+5+25,y+3),1:PSET (x+12+25,y+3),1
PSET (x+13+25,y+3),1:PSET (x+20+25,y+3),1:PSET (x+21+25,y+3),1
END IF
RETURN
VERTDOTS: 'DOMINO DOTS IN VERTICAL LAYOUT
IF s(a,1)=1 THEN PSET(x+12,y-5),1:PSET(x+13,y-5),1
IF s(a,1)=2 THEN
PSET(x+4,y-8),1:PSET(x+5,y-8),1
PSET(x+20,y-2),1:PSET(x+21,y-2),1
END IF
IF s(a,1)=3 THEN
PSET(x+4,y-8),1:PSET(x+5,y-8),1:PSET(x+12,y-5),1
PSET(x+13,y-5),1:PSET(x+20,y-2),1:PSET(x+21,y-2),1
END IF
IF s(a,1)=4 THEN
PSET(x+4,y-2),1:PSET(x+5,y-2),1:PSET(x+20,y-2),1
PSET(x+21,y-2),1:PSET(x+4,y-8),1:PSET(x+5,y-8),1
PSET(x+20,y-8),1:PSET(x+21,y-8),1
END IF
IF s(a,1)=5 THEN
PSET(x+4,y-2),1:PSET(x+5,y-2),1:PSET(x+20,y-2),1
PSET(x+21,y-2),1:PSET(x+12,y-5),1:PSET(x+13,y-5),1
PSET(x+4,y-8),1:PSET(x+5,y-8),1
PSET(x+20,y-8),1:PSET(x+21,y-8),1
END IF
IF s(a,1)=6 THEN
PSET(x+4,y-2),1:PSET(x+5,y-2),1:PSET(x+20,y-2),1
PSET(x+21,y-2),1:PSET(x+4,y-5),1:PSET(x+5,y-5),1
PSET(x+20,y-5),1:PSET(x+21,y-5),1:PSET(x+4,y-8),1
PSET(x+5,y-8),1:PSET(x+20,y-8),1:PSET(x+21,y-8),1
END IF
IF s(a,2)=1 THEN PSET(x+12,y+5),1:PSET(x+13,y+5),1
IF s(a,2)=2 THEN
PSET(x+4,y+2),1:PSET(x+5,y+2),1
PSET(x+20,y+8),1:PSET(x+21,y+8),1
END IF
IF s(a,2)=3 THEN
PSET(x+4,y+2),1:PSET(x+5,y+2),1:PSET(x+12,y+5),1
PSET(x+13,y+5),1:PSET(x+20,y+8),1:PSET(x+21,y+8),1
END IF
IF s(a,2)=4 THEN
PSET(x+4,y+2),1:PSET(x+5,y+2),1:PSET(x+20,y+2),1
PSET(x+21,y+2),1:PSET(x+4,y+8),1:PSET(x+5,y+8),1
PSET(x+20,y+8),1:PSET(x+21,y+8),1
END IF
IF s(a,2)=5 THEN
PSET(x+4,y+2),1:PSET(x+5,y+2),1:PSET(x+20,y+2),1
PSET(x+21,y+2),1:PSET(x+12,y+5),1:PSET(x+13,y+5),1
PSET(x+4,y+8),1:PSET(x+5,y+8),1:PSET(x+20,y+8),1
PSET(x+21,y+8),1
END IF
IF s(a,2)=6 THEN
PSET(x+4,y+2),1:PSET(x+5,y+2),1:PSET(x+20,y+2),1
PSET(x+21,y+2),1:PSET(x+4,y+5),1:PSET(x+5,y+5),1
PSET(x+20,y+5),1:PSET(x+21,y+5),1:PSET(x+4,y+8),1
PSET(x+5,y+8),1:PSET(x+20,y+8),1:PSET(x+21,y+8),1
END IF
RETURN
tim: 'DELAY TIMER TO SLOW DOWN COMPILER
IF pomp=0 THEN R=1:GOSUB winner
if ite=0 then return
T6=TIMER
WHILE INT(T7-T6)<ite+1
T7=TIMER
IF INT(T7-T6)=ite+1 THEN RETURN
WEND
RETURN
winner: 'GAME WINNING STATEMENT
t4=TIMER
WHILE INT(t5-t4)<3
t5=TIMER
IF INT(t5-t4)=3 THEN GOTO 1234
WEND
1234 LINE (100,40)-(540,100),2,BF:COLOR 3,2
IF R=1 THEN
p=p+1:LOCATE 8,34:PRINT R$;" Wins"
LOCATE 11,22:INPUT "Enter any key to start another game";jy$
END IF
IF R=2 THEN
c=c+1:LOCATE 8,32:PRINT "Computer Wins"
LOCATE 11,22:INPUT "Enter any key to start another game";jy$
END IF
IF R=4 THEN
LOCATE 7,24:PRINT "Neither player has a ";dot;", therefore";
IF cscore>pscore THEN
c=c+1:LOCATE 9,21
PRINT "The Computer wins with a higher score of";cscore
LOCATE 12,21:INPUT "Enter any key to start another game";ft$
END IF
IF pscore>cscore THEN
p=p+1:LOCATE 9,23
PRINT R$;" wins with a higher score of ";pscore
LOCATE 12,21:INPUT "Enter any key to start another game";ft$
END IF
END IF
CLS:COLOR 1,0:cscore=0:pscore=0:play=0:ply=0:vt=0:dom=0:bone=0:comp=0
pomp=0:se=0:p4=0:x=0:y=0:R=0:m=0:dot=0:a=0:horiz=0:vert=0:YU=0:Y2=0
ben=0:bent=0:hi=0:gy=0:i=0:t1=0:t2=0:t3=0:t4=0:t5=0:d=0
ERASE R,m,s,t,c,p
GOTO 900
RETURN